Local Area Networks (LAN) such as Ethernet or token-ring networks, are generally interconnected through hubs. The hub is a system made of LAN adapters that communicate together through a switch card containing a switch engine. Such a switch engine can be either a shared memory switch or a crossbar switch.
The shared memory switch is a device wherein the packets received by the input ports are stored into a memory at locations the addresses of which are determined by queues containing the packet destination addresses, the packets being transmitted on the output ports as the destination addresses are dequeued. Although such a switch incurs a very low cell-lost rate, it presents a bottleneck due to the requirement of the memory bandwidth, the segregation of the memory space and the centralized control of the memory which causes the switch performance to degrade as the size of the switch increases. A traditional approach to design a large shared memory switch has been to first design a feasible size shared memory switch and then to interconnect a plurality of such modules in order to build a large switch. This general scheme of switch growth is known to cause degradation in performance of shared memory architecture as the switch grows in size insofar as the memory access controller will have to increase the number of all centralized control functions and memory operations thereby reducing drastically the access to the shared memory. A growable switch approach packet switch architecture is a plurality of shared memory switches organized in a single stage preceded by a buffer-less interconnection network. This approach does not allow global sharing of memory space along all its inputs and outputs. It is known that this approach does not provide the best memory utilization as possible for a memory belonging to a group of output ports to overflow under unbalanced or bursty traffic conditions.
The other technique, the crossbar switch, does not use a shared memory to store the data packets. In such a switch, the data are stored in the adapters and the switching data connection is established by sending requests to a control module which determines whether it is possible to satisfy the requests taking into account an algorithm defining the best data connection to establish at each time. The main drawback of this approach is the use of a centralized control module which has to know the complete switching topology of the system and can become impossible to control when the switch grows in size. The size growth and therefore the increase number of input and output ports requires to redesign the centralized control module. Furthermore, it is impossible with this approach to achieve a speed expansion without redesigning the centralized control module.
In both switch approaches mentioned above, it is difficult to implement the multicast transmission. Indeed, in a shared memory switch, the multicast function is established by the duplication of the memory address in the data output queuing buffers which is carried out by using multicast routing tables or bit map addressing. The drawback of the technique is the maintenance and the updating of the routing tables by the adapter insofar as this is performed by accessing the routing table address through an external interface bus.
In the crossbar switch, the multicast function is carried out by the duplication of the requests to send. Such a duplication can be made by the adapter or by sending requests associated with a bit map multicast routing address. In both cases, this causes contention problems in the connection and switching limitations due to the limited number of bits being used.